JSON Schema Validation কি এবং কেন প্রয়োজন

Java Technologies - জ্যাকসন (Jackson) - JSON Schema Validation
166

JSON Schema Validation কি?

JSON Schema Validation হলো JSON ডেটার কাঠামো এবং কনটেন্ট যাচাই করার একটি প্রক্রিয়া। এটি JSON Schema ব্যবহার করে করা হয়, যা JSON ডেটার কাঠামো, ডেটাটাইপ, এবং কনস্ট্রেইন্ট নির্ধারণ করে।

JSON Schema হলো একটি স্ট্যান্ডার্ডাইজড ফরম্যাট যা JSON ডেটার জন্য:

  • কাঠামো (structure),
  • ডেটাটাইপ (data types),
  • এবং বৈধতা (validity) যাচাই করে।

JSON Schema Validation কেন প্রয়োজন?

  1. ডেটা ইন্টিগ্রিটি নিশ্চিত করা: ইনপুট বা আউটপুট JSON ডেটা সঠিক কাঠামো এবং মান মেনে চলছে কিনা তা যাচাই করে।
  2. ব্যবহারকারীর ভুল রোধ করা: ডেভেলপার এবং ব্যবহারকারীর কাছ থেকে আসা ভুল ডেটা সরাসরি চেক করা যায়।
  3. API ডকুমেন্টেশন: JSON Schema ব্যবহার করে API এর কাঠামো এবং বৈধতার একটি পরিষ্কার ডকুমেন্ট তৈরি করা যায়।
  4. ডায়নামিক ডেটা যাচাই: JSON ডেটা প্রসেস করার আগে তার কাঠামো এবং ডেটা টাইপ যাচাই করে কোডের বাগ বা ভুল এড়ানো যায়।
  5. অ্যাপ্লিকেশন সুরক্ষা: নিরাপদ ডেটা ট্রান্সমিশন নিশ্চিত করে।

JSON Schema এর মূল কাঠামো

JSON Schema একটি JSON অবজেক্ট যা ডেটার কনস্ট্রেইন্ট এবং কাঠামো বর্ণনা করে। উদাহরণস্বরূপ:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 3
    },
    "age": {
      "type": "integer",
      "minimum": 18
    },
    "email": {
      "type": "string",
      "format": "email"
    }
  },
  "required": ["name", "age"]
}

Jackson এবং JSON Schema Validation এর Integration

Jackson লাইব্রেরি এবং JSON Schema ব্যবহার করে JSON ডেটা যাচাই করা সম্ভব। সাধারণত networknt JSON Schema Validator ব্যবহার করা হয়।


Maven ডিপেন্ডেন্সি

<dependency>
    <groupId>com.networknt</groupId>
    <artifactId>json-schema-validator</artifactId>
    <version>1.0.77</version>
</dependency>

JSON Schema Validation এর উদাহরণ

১. JSON Schema এবং JSON ডেটা প্রস্তুত করুন

JSON Schema:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 3
    },
    "age": {
      "type": "integer",
      "minimum": 18
    },
    "email": {
      "type": "string",
      "format": "email"
    }
  },
  "required": ["name", "age"]
}

JSON ডেটা:

{
  "name": "Jo",
  "age": 15,
  "email": "invalid-email"
}

২. কোড উদাহরণ
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.networknt.schema.JsonSchema;
import com.networknt.schema.JsonSchemaFactory;
import com.networknt.schema.SpecVersion;
import com.networknt.schema.ValidationMessage;

import java.io.File;
import java.util.Set;

public class JsonSchemaValidationExample {
    public static void main(String[] args) throws Exception {
        // JSON Schema এবং JSON ডেটা লোড করা
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode schemaNode = objectMapper.readTree(new File("schema.json"));
        JsonNode jsonData = objectMapper.readTree(new File("data.json"));

        // JSON Schema তৈরি
        JsonSchemaFactory schemaFactory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V7);
        JsonSchema schema = schemaFactory.getSchema(schemaNode);

        // Validation
        Set<ValidationMessage> validationMessages = schema.validate(jsonData);

        if (validationMessages.isEmpty()) {
            System.out.println("JSON is valid!");
        } else {
            System.out.println("JSON validation errors:");
            for (ValidationMessage message : validationMessages) {
                System.out.println(message.getMessage());
            }
        }
    }
}

৩. আউটপুট
JSON validation errors:
$.name: must be at least 3 characters long
$.age: must be greater than or equal to 18
$.email: must be a valid email address

JSON Schema Validation এর মূল বৈশিষ্ট্য

  1. ডেটা টাইপ যাচাই: string, integer, boolean ইত্যাদি।
  2. নির্ধারিত ফিল্ড বাধ্যতামূলক করা: required প্রপার্টি ব্যবহার করে।
  3. মিনিমাম এবং ম্যাক্সিমাম ভ্যালু: minLength, maxLength, minimum, maximum
  4. প্যাটার্ন মিলানো: pattern ব্যবহার করে রেগুলার এক্সপ্রেশন যাচাই।
  5. ইমেইল এবং URL যাচাই: format ব্যবহার করে।
  6. এনেস্টেড অবজেক্ট এবং অ্যারে যাচাই: properties এবং items ব্যবহার করে।

JSON Schema Validation এর উপকারিতা

  1. API সঠিকতা নিশ্চিত করা: RESTful API ডেটা যাচাইয়ের জন্য খুব কার্যকর।
  2. ডেভেলপার এবং ক্লায়েন্টদের মধ্যে সিঙ্ক্রোনাইজেশন: ডকুমেন্টেশন এবং ডেটা কাঠামোর মধ্যে মিল রাখে।
  3. ডায়নামিক ডেটা যাচাই: ডেটা প্রসেসিংয়ের পূর্বে অটোমেটিক ভ্যালিডেশন।
  4. কোডের জটিলতা হ্রাস: ভ্যালিডেশন লজিক JSON Schema-তে সংজ্ঞায়িত করার মাধ্যমে।
  5. ইন্টারঅপারেবিলিটি: JSON Schema একটি স্ট্যান্ডার্ড হওয়ায় এটি বিভিন্ন প্ল্যাটফর্মে ব্যবহার করা যায়।

JSON Schema Validation একটি স্ট্যান্ডার্ড পদ্ধতি যা JSON ডেটার কাঠামো এবং কনটেন্ট যাচাই করতে ব্যবহৃত হয়। Jackson এবং JSON Schema Validator লাইব্রেরি ব্যবহার করে এটি Java অ্যাপ্লিকেশনে সহজেই ইন্টিগ্রেট করা যায়। এটি API ডেভেলপমেন্টে ডেটা ইন্টিগ্রিটি এবং সিকিউরিটি নিশ্চিত করার একটি অত্যন্ত কার্যকর পদ্ধতি।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...